From ddd48f0ea099621ef1e891f634b938dda76a5bba Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Tue, 12 Nov 2013 17:20:34 +0100 Subject: [PATCH] common/vsprintf: fix signed->unsigned error, causing glacial performance The original patch for c/s 67a3542c5bc356e6452d8305991617c875f87de4 "common/vsprintf: Refactor string() out of vsnprintf()" specifically used signed integers, identical to the code copied out of vsprintf. When committed, these had changed to unsigned integers, which causes a functional change. This causes glacial boot performance and an excessive quantity of spaces printed to the serial console, as we loop to the upper bound of a 32bit integer. Signed-off-by: Andrew Cooper --- xen/common/vsprintf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c index e8f45ebf6f..43dc392916 100644 --- a/xen/common/vsprintf.c +++ b/xen/common/vsprintf.c @@ -239,7 +239,7 @@ static char *number( static char *string(char *str, char *end, const char *s, int field_width, int precision, int flags) { - unsigned int i, len = strnlen(s, precision); + int i, len = strnlen(s, precision); if (!(flags & LEFT)) { while (len < field_width--) { -- 2.30.2